package chapter04;

public class Java17_Object_Access {

    private String name;

    public String userName;

    String sex;
    public static void main(String[] args) {
        // TODO 访问权限
        // public：公共的，访问权限修饰符；Java源码中，公共类只能有一个，且必须和源码文件名相同
        /*
            main方法：由JVM调用，可以任意调用，而不需要考虑权限
            static：代表其为静态语法，跟当前类有关；去掉后main方法变成一个成员方法，而main方法需要以任意的方法调用它，不应该有任务限制
         */

        // 分类：
        /*
            1.private：私有的，同一个类中可以使用
            2.default：默认权限，不设定权限时JVM默认提供权限（包权限/路径权限）
            3.protected：受保护的权限，子类可以访问
            4.public：公共的,任意使用
         */

        User17 u = new User17();
        // System.out.println(u.name); 报错：'name' has private access in 'chapter04.User17
        System.out.println(u.userName);
        System.out.println(u.sex);
        System.out.println(u.age);

    }
}

class User17 {
    private String name;

    public String userName;

    String sex;

    protected int age;
    void test() {
        System.out.println(name);
        System.out.println(userName);
        System.out.println(sex);
        System.out.println(age);
    }
}

class Child17 extends User17 {
    void test() {
        System.out.println(age);
    }
}
